草庐IT

Web 开发

全部标签

ruby-on-rails - 基于API的应用程序开发的困惑

传统上,我使用RubyonRails构建应用程序,很少提取服务。我现在正在转向更易于管理和更高效的东西(带API的SOA)。让我感到困惑的是,如果我用Go之类的语言构建API服务器,我究竟会失去什么。假设我有一个Article模型,整个系统的旅程会是什么样子?我指的是ORM、Controller、API等。如果我在Go中有一个API,ORM会在API级别上,还是我仍然可以使用Rails(它会与API对话)?那么Controller呢?我不知道这个堆栈是否有意义:作为API服务器运行Rails作为应用服务器我担心的是,如果我采用这种方法,我是否会失去Rails附带的很多功能,例如迁移。

json - 使用 Go 的 restful Web 服务的 POST 方法(对于 JSON)的 Curl 命令的 500 内部服务器错误

有一个名为countries.go的文件它导入包github.com/ant0ine/go-json-rest/rest。引用代码来自https://gowalker.org/github.com/ant0ine/go-json-rest#countries国家部分:POSTDELETE等演示当我尝试使用命令时curl-i-d'{"Code":"FR","Name":"France"}'http_URL它给了{“错误”:“寻找值开头的无效字符‘\’”我已经使用了上面给出的包。似乎在request.go中给出的方法是DecodeJsonPayload(),它为JSON实现unmarsha

amazon-web-services - goamz/sqs/md5.go :57: undefined: md5. 求和问题

我正在尝试在http://www.nitrous.io上操纵awssqs带有golang版本go1.1.1linux/amd64的盒子。当我从这个github存储库导入sqs模块时https://github.com/crowdmob/goamz/tree/master/sqs我用运行我的代码gorunmyCode.go我遇到这个问题:#github.com/crowdmob/goamz/sqs../src/github.com/crowdmob/goamz/sqs/md5.go:57:undefined:md5.Sum我对该模块的调用是这样的:import"github.com/cr

go - 从 Web 服务流式传输结果的最佳方法

我目前正在编写一个返回批处理结果的xml服务。我目前有以下内容:typeQueryEnvelopestruct{XMLNamexml.Name`xml:"http://schemas.xmlsoap.org/soap/envelope/Envelope"`Body*QueryBody`xml:"http://schemas.xmlsoap.org/soap/envelope/Body"`}typeQueryBodystruct{QueryResult*QueryResult`xml:"queryResponse>result"`}typeQueryResultstruct{QueryL

amazon-web-services - 让 Beego 在 AWS 上工作

我目前正在寻找一个可以阅读有关在AWS上运行Beego(或类似的Golang)框架的地方。有谁知道一个地方吗? 最佳答案 你有一个(Japanese-googletranslated)tutorial将Beego安装到AWS。除了安装git、go和beego外,没有什么特别的sudoyuminstallgitmercurialyuminstallld-linux.so.2#Runcurl-L-Ohttps://go.googlecode.com/files/go1.2.1.linux-386.tar.gzasroottarzxvfg

timer - 如何从 Web 服务器重启(或代码刷新/升级)中恢复 Go 计时器?

例如,考虑一个Web服务,用户可以在其中发出API请求以在特定的预定时间启动任务。任务定义和计划时间保存在数据库中。我想出的第一种方法是启动一个Go计时器并等待计时器在Goroutine中到期(不阻止请求)。这个goroutine在时间到期后,还会触发另一个API请求以开始执行任务。现在重新部署此服务时会出现问题。对于零停机部署,我使用Einhorn与goji.代码重新加载后,显然定时器goroutine和timer-expiration-handlergoroutine都死了。代码重新加载后有什么方法可以恢复Go定时器吗?我正在努力解决的另一个问题是允许用户中断计时器(一旦启动)。G

vim - 开发 Golang 命令行的工作流程

我想要构建我的第一个Go命令行应用程序。我感觉真的很不舒服……做那样的事情时,典型的工作流程会是什么样子?我正在尝试编写一些go然后我在vim中运行gobuild并尝试使用另一个终端选项卡运行该程序,但是gobuild单独没有'似乎无法构建程序并将其安装在我的系统上。我尝试使用-i并且第一次成功了,但之后没有更新它。我敢肯定这很愚蠢,但希望您能为我指明正确的方向。 最佳答案 gobuild&&goinstall成功了! 关于vim-开发Golang命令行的工作流程,我们在StackOve

http - GoLang 服务器上的开发分支,多个 listenAndServes

我正在为我的服务器开发一个分支。这个想法是在两个不同的文件夹中使用同一个git分支的两个克隆,它们或多或少是相同的。第一个文件夹是实时的,第二个是我的开发者。目前,我正在启动live-branchgo项目,稍后将启动developer-branchgo项目。然后,整个网站被镜像到“www.k.com/”和“www.k.com/developer/”。问题是,这行不通。当我启动我的第二个go应用程序时,一切运行正常,但最后一行“http.ListenAndServe”没有捕捉到。据我所知,ListenandServe也不会抛出任何错误。这使我的服务器正常运行,但开发人员/页面抛出404,

concurrency - 大量数据竞赛 Web 应用程序

我正在编写一个网络应用程序。传入的请求将首先通过中间件。目前,我添加了两个中间件session和security。遍历中间件后,它将执行请求的处理程序。session和安全中间件将在它们自己的goroutine中执行。当我测试时,我有很多数据竞争,特别是在中间件部分WARNING:DATARACEWritebygoroutine18:runtime.mapassign1()c:/go/src/runtime/hashmap.go:383+0x0net/textproto.MIMEHeader.Set()c:/go/src/net/textproto/header.go:22+0xf4n

web-applications - `alice` 未调用中间件

为什么这里只调用了H1的ServeHTTP方法,而H2和H3似乎是被忽略了?alice似乎是一个不错的中间件链接,在这里我尝试将它与httprouter一起使用,但只有外部/最后一个中间件被调用:packagemainimport("fmt""github.com/julienschmidt/httprouter""github.com/justinas/alice""net/http""log""time")funcmain(){fmt.Println("started",time.Now())c:=alice.New(S1,S2,S3).Then(nil)router:=httpr